
interface IPerson {
  name: string
  age: number
  height?: number
}

// Pick: 从类型T中挑选出K中的属性
// 确实keys一定是可以作为key的联合类型
// extends: K extends keyof T 表示 K中的每一个类型都必须是 keyof T中的类型
type PickType<T, K extends keyof T> = {
  [P in K]: T[P]
}

// 都变成可选的
type PickRes = PickType<IPerson, 'name' | 'age'>

const res: PickRes = {
  name: 'PickRes',
  age: 18
}


export {}
